#include <iostream>
#include <unistd.h>
#include <sys/resource.h>
#include <signal.h>
#include <vector>
#include <boost/algorithm/string.hpp>
#include <ctemplate/template.h>

using namespace std;
int main()
{
    std::string in_html = "./test.html";
    std::string value = "陈博18cm巨茎爆插内射";

    // 形参数据字典
    ctemplate::TemplateDictionary root("test");   // unordered_map<> test; 
    root.SetValue("key",value); // test.insert({});

    // 获取被渲染网页对象
    ctemplate::Template *tpl = ctemplate::Template::GetTemplate(in_html,ctemplate::DO_NOT_STRIP);
    // 两个参数  1.获取的网页 2. 设置渲染时的参数,除去空行等  ctemplate::DO_NOT_STRIP(保持网页原貌)

    // 添加数据字典到网页中
    std::string out_html;
    tpl->Expand(&out_html,&root);

    //完成渲染
    cout<<out_html;

    //! 编译当前源文件: -lctemplate(使用第三方库)  -lpthread(ctemplate中使用了线程库)
    //! g++ -o mybin test.cpp -std=c++11 -lctemplate

}





// int main()
// {
//     std::vector<std::string> ans;
//     const std::string str = "1 wwww ew ewe dwe";

//     // ans 切分后存放的目标数组  // str: 需要切分的数组  // boost::is_any_of(" ") : 给出切分字符
//     boost::split(ans, str, boost::is_any_of(" "), boost::algorithm::token_compress_on);
//     // boost::algorithm::token_compress_on  是否需要压缩 ,  1::::wwww:e
//                                         // 如果 是以 : 进行切分 ,那么两个冒号之间的 ""(空字符串是否需要保留)                                   

//     for(auto e:ans)
//     cout<<e<<endl;
// }





// void handler(int signo)
// {
//     cout << "signal: " << signo << endl;
// }

// int main()
// {

//     // 资源不足,OS终止进程是通过信号进行终止的
//     for (int i = 1; i < 32; i++)
//     {
//         signal(i, handler);
//     }

//     // 设置时间约束
//     struct rlimit r;
//     r.rlim_cur = 1;             // 占用的秒数为 1
//     r.rlim_max = RLIM_INFINITY; // 无上限  (INFINITY) 无穷

//     setrlimit(RLIMIT_CPU, &r);

//     // // 设置空间约束
//     // struct rlimit rr;
//     // rr.rlim_cur = 1024*1024* 20 ;  // 20 MB
//     // rr.rlim_max = RLIM_INFINITY ;  // 无上限  (INFINITY) 无穷

//     // setrlimit(RLIMIT_AS,&rr);

//     int count = 0;
//     while (1)
//     {
//         // new int[1024*1024];
//         // sleep(1);
//         // cout<<count++<<endl;
//     }
// }